In a typical server-client configuration for an enterprise application, backend infrastructure (i.e., servers and databases) is used to manage and store the data, logic, and rules of the application. A client computing device, which may be network connected to the backend infrastructure, runs a frontend graphical user interface (GUI) of the application. A user can interact with the application through the GUI using various input devices. Each piece of information (data) displayed in a view on the GUI is retrieved from the backend infrastructure in a roundtrip communication trip.
A graphical user interface (GUI) of a computer application is typically built in a Model-View-Controller (MVC) design pattern. In MVC, the GUI application is built from components (objects) of three types: models, views, and controllers. The model component represents the application logic—functions and data. The model component directly manages the data, logic, and rules of the application, independent of the user interface. The view component displays the modeled data to the user. The view component can be any output representation of information, such as a chart or a diagram. The controller component accepts user input on the GUI and converts it to commands for the model or view. From another perspective, the model is responsible for storing the information; view presents the information stored in model, while the controller modifies the model.
Distributed applications are applications or software that runs on multiple computers within a network at the same time and can be stored on servers or on cloud computing platforms. Unlike traditional applications that run on a single system, distributed applications run on multiple systems simultaneously for a single task or job.
A GUI for a distributed application in a cloud may maintain several models that describe a same object or fact (hereinafter “redundant models”). A change to a first of the redundant models without a corresponding change to a second of the redundant models may result in different information being stored in the models for the same object or fact.
Consideration is now being given to mechanisms for making the redundant models maintained by a GUI consistent (i.e. contain the same information for the same object or fact).